// 在字符串 s 中找出第一个只出现一次的字符。如果没有，返回一个单空格。 s 只包含小写字母。

#include<bits/stdc++.h>
using namespace std;

// hash
// 如何保证是第一个：两次遍历

// 执行用时：
// 48 ms
// , 在所有 C++ 提交中击败了
// 39.06%
// 的用户
// 内存消耗：
// 10.5 MB
// , 在所有 C++ 提交中击败了
// 54.49%
// 的用户


class Solution {
public:
    unordered_map<char,int> hash;
    char firstUniqChar(string s) {
        char res=' ';
        if(s.size()==0){
            return res;
        }
        // hash
        for(auto c:s){
            if(hash.count(c)){
                ++hash[c];
            }
            else{
                hash[c]=1;
            }
        }
        // find
        for(auto c:s){
            if(hash[c]==1){
                res = c;
                break;
            }
        }
        return res;
    }
};